package com.ruoyi.social.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.poi.hpsf.Decimal;

/**
 * 商品数据对象 social_product
 * 
 * @author ruoyi
 * @date 2025-09-24
 */
public class SocialProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 外部id */
    @Excel(name = "外部id")
    private String productOutid;

    /** 平台 */
    @Excel(name = "平台")
    private String productPlatform;

    /** 国家 */
    @Excel(name = "国家")
    private String productCountry;

    /** 链接 */
    @Excel(name = "链接")
    private String productLink;

    /** 一级类目 */
    @Excel(name = "一级类目")
    private String productTtCategory1;

    /** 二级类目 */
    @Excel(name = "二级类目")
    private String productTtCategory2;

    /** 三级类目 */
    @Excel(name = "三级类目")
    private String productTtCategory3;

    /** 商品名称 */
    @Excel(name = "商品名称")
    private String productNameOrigin;

    /** 商品名称(文) */
    @Excel(name = "商品名称(文)")
    private String productNameEn;

    /** 商品名称(中) */
    @Excel(name = "商品名称(中)")
    private String productNameCn;

    /** 商品详情 */
    @Excel(name = "商品详情")
    private String productDetailOrigin;

    /** 商品详情(英) */
    @Excel(name = "商品详情(英)")
    private String productDetailEn;

    /** 商品详情(中) */
    @Excel(name = "商品详情(中)")
    private String productDetailCn;

    /** 销量 */
    @Excel(name = "销量")
    private Long productSales;

    /** 销售额(本币) */
    @Excel(name = "销售额(本币)")
    private BigDecimal productGmvCurrentPrice;

    /** 销售额(美金) */
    @Excel(name = "销售额(美金)")
    private BigDecimal productGmvUsd;

    /** 店铺的 id */
    @Excel(name = "店铺的 id")
    private Long shopId;

    /** 店铺外部ID */
    @Excel(name = "店铺外部ID")
    private String shopOutid;

    /** 品牌 */
    @Excel(name = "品牌")
    private String productBrand;

    private String channel;

    private String status;

    /**
     * 零售价
     */
    private BigDecimal productPrice;

    /**
     * 原价
     */
    private BigDecimal productOriginalPrice;

    /**
     * 货币
     */
    private String productCurrency;

    private String ajContent;

    private String productImg;

    /** 更新日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date productInfoUpdateData;

    /** 更新用户 */
    @Excel(name = "更新用户")
    private Long productInfoUpdateBy;

    List<SocialProductTrend> trends;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setProductOutid(String productOutid) 
    {
        this.productOutid = productOutid;
    }

    public String getProductOutid() 
    {
        return productOutid;
    }

    public void setProductPlatform(String productPlatform) 
    {
        this.productPlatform = productPlatform;
    }

    public String getProductPlatform() 
    {
        return productPlatform;
    }

    public void setProductCountry(String productCountry) 
    {
        this.productCountry = productCountry;
    }

    public String getProductCountry() 
    {
        return productCountry;
    }

    public void setProductLink(String productLink) 
    {
        this.productLink = productLink;
    }

    public String getProductLink() 
    {
        return productLink;
    }

    public void setProductTtCategory1(String productTtCategory1) 
    {
        this.productTtCategory1 = productTtCategory1;
    }

    public String getProductTtCategory1() 
    {
        return productTtCategory1;
    }

    public void setProductTtCategory2(String productTtCategory2) 
    {
        this.productTtCategory2 = productTtCategory2;
    }

    public String getProductTtCategory2() 
    {
        return productTtCategory2;
    }

    public void setProductTtCategory3(String productTtCategory3) 
    {
        this.productTtCategory3 = productTtCategory3;
    }

    public String getProductTtCategory3() 
    {
        return productTtCategory3;
    }

    public void setProductNameOrigin(String productNameOrigin) 
    {
        this.productNameOrigin = productNameOrigin;
    }

    public String getProductNameOrigin() 
    {
        return productNameOrigin;
    }

    public void setProductNameEn(String productNameEn) 
    {
        this.productNameEn = productNameEn;
    }

    public String getProductNameEn() 
    {
        return productNameEn;
    }

    public void setProductNameCn(String productNameCn) 
    {
        this.productNameCn = productNameCn;
    }

    public String getProductNameCn() 
    {
        return productNameCn;
    }

    public void setProductDetailOrigin(String productDetailOrigin) 
    {
        this.productDetailOrigin = productDetailOrigin;
    }

    public String getProductDetailOrigin() 
    {
        return productDetailOrigin;
    }

    public void setProductDetailEn(String productDetailEn) 
    {
        this.productDetailEn = productDetailEn;
    }

    public String getProductDetailEn() 
    {
        return productDetailEn;
    }

    public void setProductDetailCn(String productDetailCn) 
    {
        this.productDetailCn = productDetailCn;
    }

    public String getProductDetailCn() 
    {
        return productDetailCn;
    }

    public void setProductSales(Long productSales) 
    {
        this.productSales = productSales;
    }

    public Long getProductSales() 
    {
        return productSales;
    }

    public void setProductGmvCurrentPrice(BigDecimal productGmvCurrentPrice) 
    {
        this.productGmvCurrentPrice = productGmvCurrentPrice;
    }

    public BigDecimal getProductGmvCurrentPrice() 
    {
        return productGmvCurrentPrice;
    }

    public void setProductGmvUsd(BigDecimal productGmvUsd) 
    {
        this.productGmvUsd = productGmvUsd;
    }

    public BigDecimal getProductGmvUsd() 
    {
        return productGmvUsd;
    }

    public void setShopId(Long shopId)
    {
        this.shopId = shopId;
    }

    public Long getShopId()
    {
        return shopId;
    }

    public void setShopOutid(String shopOutid)
    {
        this.shopOutid = shopOutid;
    }

    public String getShopOutid()
    {
        return shopOutid;
    }

    public void setProductBrand(String productBrand) 
    {
        this.productBrand = productBrand;
    }

    public String getProductBrand() 
    {
        return productBrand;
    }

    public void setProductInfoUpdateData(Date productInfoUpdateData) 
    {
        this.productInfoUpdateData = productInfoUpdateData;
    }

    public Date getProductInfoUpdateData() 
    {
        return productInfoUpdateData;
    }

    public void setProductInfoUpdateBy(Long productInfoUpdateBy) 
    {
        this.productInfoUpdateBy = productInfoUpdateBy;
    }

    public Long getProductInfoUpdateBy() 
    {
        return productInfoUpdateBy;
    }

    public List<SocialProductTrend> getTrends() {
        return trends;
    }

    public void setTrends(List<SocialProductTrend> trends) {
        this.trends = trends;
    }

    public BigDecimal getProductPrice() {
        return productPrice;
    }

    public void setProductPrice(BigDecimal productPrice) {
        this.productPrice = productPrice;
    }

    public BigDecimal getProductOriginalPrice() {
        return productOriginalPrice;
    }

    public void setProductOriginalPrice(BigDecimal productOriginalPrice) {
        this.productOriginalPrice = productOriginalPrice;
    }

    public String getProductCurrency() {
        return productCurrency;
    }

    public void setProductCurrency(String productCurrency) {
        this.productCurrency = productCurrency;
    }

    public String getAjContent() {
        return ajContent;
    }

    public void setAjContent(String ajContent) {
        this.ajContent = ajContent;
    }

    public String getProductImg() {
        return productImg;
    }

    public void setProductImg(String productImg) {
        this.productImg = productImg;
    }

    public String getChannel() {
        return channel;
    }

    public void setChannel(String channel) {
        this.channel = channel;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("productOutid", getProductOutid())
            .append("productPlatform", getProductPlatform())
            .append("productCountry", getProductCountry())
            .append("productLink", getProductLink())
            .append("productTtCategory1", getProductTtCategory1())
            .append("productTtCategory2", getProductTtCategory2())
            .append("productTtCategory3", getProductTtCategory3())
            .append("productNameOrigin", getProductNameOrigin())
            .append("productNameEn", getProductNameEn())
            .append("productNameCn", getProductNameCn())
            .append("productDetailOrigin", getProductDetailOrigin())
            .append("productDetailEn", getProductDetailEn())
            .append("productDetailCn", getProductDetailCn())
            .append("productSales", getProductSales())
            .append("productGmvCurrentPrice", getProductGmvCurrentPrice())
            .append("productGmvUsd", getProductGmvUsd())
            .append("shopId", getShopId())
            .append("shopOutid", getShopOutid())
            .append("productBrand", getProductBrand())
            .append("productInfoUpdateData", getProductInfoUpdateData())
            .append("productInfoUpdateBy", getProductInfoUpdateBy())
            .toString();
    }
}
